from Products.CMFCore.utils import getToolByName
from Products.Archetypes.public import DisplayList

VOCAB_ESTADOS = DisplayList((
    ('AC', 'Acre'),
    ('AL', 'Alagoas'),
    ('AP', 'Amapá'),
    ('AM', 'Amazonas'),
    ('BA', 'Bahia'),
    ('CE', 'Ceará'),
    ('DF', 'Distrito Federal'),
    ('ES', 'Espírito Santo'),
    ('GO', 'Goiás'),
    ('MA', 'Maranhão'),
    ('MT', 'Mato Grosso'),
    ('MS', 'Mato Grosso do Sul'),
    ('MG', 'Minas Gerais'),
    ('PA', 'Pará'),
    ('PB', 'Paraíba'),
    ('PR', 'Paraná'),
    ('PE', 'Pernambuco'),
    ('PI', 'Piauí'),
    ('RJ', 'Rio de Janeiro'),
    ('RN', 'Rio Grande do Norte'),
    ('RS', 'Rio Grande do Sul'),
    ('RO', 'Rondônia'),
    ('RR', 'Roraima'),
    ('SC', 'Santa Catarina'),
    ('SP', 'São Paulo'),
    ('SE', 'Sergipe'),
    ('TO', 'Tocantins'),
))

VOCAB_SEXO = DisplayList((
    ('feminino', 'Feminino'),
    ('masculino', 'Masculino'),
))

VOCAB_ESTADO_CIVIL = DisplayList((
    ('1', 'Solteiro(a)'),
    ('2', 'Casado(a)'),
    ('3', 'Divorciado(a)'),
    ('4', 'Viúvo(a)'),
    ('5', 'União estável'),
))

VOCAB_MES = DisplayList ((
	('janeiro', 'Janeiro'),
	('fevereiro', 'Fevereiro'),
	('marco', 'Março'),
	('abril', 'Abril'),
	('maio', 'Maio'),
	('junho', 'Junho'),
	('julho', 'Julho'),
	('agosto', 'Agosto'),
	('setembro', 'Setembro'),
	('outubro', 'Outubro'),
	('novembro', 'Novembro'),
	('dezembro', 'Dezembro'),
))

VOCAB_FORMACAO = DisplayList((
    ('1', 'Ensino Médio Completo'),
    ('2', 'Superior Incompleto'),
    ('3', 'Superior Completo'),
    ('4', 'Pós-Graduação'),
    ('5', 'Mestrado'),
    ('6', 'Doutorado'),
    ('7', 'Outro'),
))

def getVocabUsuarios():
    """
    Retorna um vocabulario com todos os usuarios do portal.
    """

    mtool = getToolByName(self, 'portal_membership')
    members = mtool.searchForMembers()
    result = []

    for member in members:
        username = member.getUserName()
        fullname = member.getProperty('fullname')
        if fullname == '':
            fullname = username

        result.append(username, fullname)

    return DisplayList(result)